package com.linkgie.galaxyframework.metric;

public interface Metricator {

    /**
     * 指标；
     * @return
     */
    MetricKey getMetricKey();

    /**
     * 获取当前的度量值；
     * 
     * @return
     */
    long getMetricValue();


    /**
     * 度量值；
     * @return
     */
    Metric getMetric();

    /**
     * 带元数据标注的值对象；
     * <p>
     * 与元数据框架结合使用可以对指标值进行格式化显示；
     * @return
     */
    <V extends KeyValueMetric> V getValueObject();

    /**
     * 带元数据标注的值对象的类型；
     * @return
     */
    Class<? extends KeyValueMetric> getValueObjectType();
}
